# 构建产物目录

本章节主要介绍构建产物的目录结构，以及如何控制不同类型产物的输出目录。

## 默认产物目录

下面是最基础的产物目录结构，默认情况下，构建产物会生成在当前项目的 `dist` 目录下。

```
dist
├── css
│   ├── [name].[hash].css
│   └── [name].[hash].css.map
│
├── js
│   ├── [name].[hash].js
│   └── [name].[hash].js.map
│
└── [name].html
```

最常见的产物是 HTML 文件、JS 文件和 CSS 文件：

- HTML 文件：默认输出到 dist 目录的根部。

- JS 文件：默认输出到 static/js 目录，

- CSS 文件：默认输出到 static/css 目录。

此外，JS 文件和 CSS 文件有时候会生成一些相关产物：

- Source Map 文件：包含保存源代码映射关系，默认输出到 JS 文件和 CSS 文件的同级目录，并添加 .map 后缀。
  在产物的文件名称中，[name] 表示这个文件对应的入口名称，比如 index, main。[hash] 则是基于该文件的内容生成的哈希值。

## 修改产物目录

- 通过 output.filename 来修改产物的文件名。

## 静态资源

当你在代码中引用图片、SVG、字体、媒体等类型的静态资源时，`EMP`会将其统一输出到 dist/assets 目录下：

```
dist
└── assets
    ├── foo.[hash].png
    ├── bar.[hash].svg
    ├── baz.[hash].woff2
    └── qux.[hash].mp4
```
